var gulp = require('gulp')
// 引入js插件
var uglify = require('gulp-uglify')
// 引入css插件
var cssmin = require('gulp-cssmin')
// 引入css插件
var sass = require('gulp-sass')(require('sass'))
// 引入html插件
var htmlmin = require('gulp-htmlmin')
// 引入html插件
var imagemin = require('gulp-image')
// 引入watch
var watch = require('gulp-watch')
// 开启服务器
var webserver = require('gulp-webserver')

// 开启一个打包js的任务
gulp.task('js', function () {
    // 想要打包那个文件
    gulp.src('./sanxing2/js/*.js')
        // 使用哪个插件打包
        .pipe(uglify())
        // 输出到哪里去
        .pipe(gulp.dest('./dist/js'))
})

// 开启一个打包css的任务
gulp.task('css', function () {
    // 想要打包那个文件
    gulp.src('./sanxing2/css/*.css')
        // 使用哪个插件打包
        .pipe(cssmin())
        // 输出到哪里去
        .pipe(gulp.dest('./dist/css'))
})

// 开启一个打包scss的任务
gulp.task('sass', function () {
    // 想要打包那个文件
    gulp.src('./sanxing2/css/*.scss')
        // 使用哪个插件打包
        .pipe(sass())
        // 输出到哪里去
        .pipe(gulp.dest('./dist/css'))
})

// 开启一个打包html的任务
gulp.task('html', function () {
    // 想要打包那个文件
    gulp.src('./sanxing2/html/*.{htm,html}')
        // 使用哪个插件打包
        .pipe(htmlmin({
            // 删除空白 换行 和 空格
            collapseWhitespace: true,
            // 压缩html内的JS
            minifyJS: true,
            // 压缩html内的CSS
            minifyCSS: true,
            // removeComments: true,  //清除HTML注释
            // collapseBooleanAttributes: true,  //省略布尔属性的值 <input checked="true"/> ==> <input checked />
            // removeEmptyAttributes: true,  //删除所有空格作属性值 <input id="" /> ==> <input />
            // removeScriptTypeAttributes: true,  //删除<script>的type="text/javascript"
            // removeStyleLinkTypeAttributes: true,  //删除<style>和<link>的type="text/css"
        }))
        // 输出到哪里去
        .pipe(gulp.dest('./dist/html'))
})

// 开启图片任务
gulp.task('image', function () {
    // 想要打包那个文件
    gulp.src('./sanxing2/images/*.{jpg,png,webp,jpeg,gif}')
        // 使用哪个插件打包
        .pipe(imagemin())
        // 输出到哪里去
        .pipe(gulp.dest('./dist/images'))
})
// 开启监听任务
gulp.task('watch', function () {
    gulp.watch('./sanxing2/css/*.css', ['css']);
    gulp.watch('./sanxing2/css/*.scss', ['sass']);
    gulp.watch('./sanxing2/images/*.{jpg,png,webp,jpeg,gif}', ['image']);
    gulp.watch('./sanxing2/js/*.js', ['js']);
    gulp.watch('./sanxing2/html/*.{htm,html}', ['html']);
})

// 开启服务器
gulp.task('webserver', function () {
    gulp.src('./dist/')
        .pipe(webserver(
            {
                // 热更新
                livereload: true,
                // 默认地址
                host: 'localhost',
                // 端口
                port: '3000',
                // 路径
                // path: '/',
                // 默认打开文件
                open: 'index.htm',
                // 反向代理
                proxies: [
                    {
                        source: '/dt',
                        target: 'http://www.duitang.com/'
                    }
                ]
            }
        ))
})

// 开启任务
gulp.task('default', ['js', 'css', 'sass', 'html', 'image', 'watch', 'webserver'], function () {
    console.log('开启自动施法...')
})